package com.jdls.day11.work;

import java.io.File;

/**
 * @author 嘉德罗斯
 * @date 2021/7/31
 */
public class Test3 {
    public static void main(String[] args) {
        //3. 已知File类中存在一个方法 long length()
        // 可以获取文件的大小，但是不能直接获取文件夹的大小
        //    现要求：定义方法接收一个文件夹的File对象，
        // 获取文件夹的实际大小（提示：将文件夹中所有的文件大小加起来就是整个文件夹的大小）
        File f = new File("d:\\网易云");
        System.out.println("总大小为"+sum(f)+"b");
    }
    //定义一个静态变量 只会初始化一次
    static int a = 0;
    private static long sum(File f) {
        //进入文件，获取该文件内的所有文件
        File[] arr = f.listFiles();
        //判断数组==null
        if(arr!=null){
            //如果不为null，进入循环
            for (File s : arr) {
                //如果这是文件，那么直接计算该文件的值
                if(s.isFile()){
                    a +=s.length();
                    //如果不是文件，那么就进入文件夹寻找新的文件
                }else {
                    sum(s);
                }
            }
        }
        return a;
    }
}
